From: Rui Matos Date: Wed, 22 Jun 2016 19:12:41 +0000 (+0200) Subject: Arrow: compute a paint volume that accounts for the shadow X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~834 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=408211ba73f6ce487b8556cfb655c642c4474fcf;p=gnome-shell.git Arrow: compute a paint volume that accounts for the shadow Otherwise the shadow gets clipped to the actor's allocation. https://bugzilla.gnome.org/show_bug.cgi?id=767954 --- diff --git a/js/ui/screenShield.js b/js/ui/screenShield.js index 982d9ba1d..1c1fad954 100644 --- a/js/ui/screenShield.js +++ b/js/ui/screenShield.js @@ -377,6 +377,22 @@ const Arrow = new Lang.Class({ cr.$dispose(); }, + vfunc_get_paint_volume: function(volume) { + if (!this.parent(volume)) + return false; + + if (!this._shadow) + return true; + + let shadow_box = new Clutter.ActorBox(); + this._shadow.get_box(this._drawingArea.get_allocation_box(), shadow_box); + + volume.set_width(Math.max(shadow_box.x2 - shadow_box.x1, volume.get_width())); + volume.set_height(Math.max(shadow_box.y2 - shadow_box.y1, volume.get_height())); + + return true; + }, + vfunc_style_changed: function() { let node = this.get_theme_node(); this._shadow = node.get_shadow('-arrow-shadow');